package week03;

public class T0241 {
	static int[]num = new int[10];
	static boolean[] exist = new boolean[10];
	static int n = 9;
	static int flag=0;
	static void dfs(int step) {
		if(flag>=1000000) return;//计数已经完成，后面的的就不用走了，直接返回
		
		//终止条件
		if(step==n+1) {
			flag++;
			if(flag==1000000) {
				for(int i=0;i<=n;i++) 
					System.out.print(num[i]);
			}
			return;//返回上一级
		}
		
		for(int i=0;i<=n;i++) {
			if(!exist[i]) {
				num[step]=i;
				exist[i]=true;
				dfs(step+1);
				exist[i]=false;
			}
		}
		return;
	}
	
	public static void main(String[] args) {
		dfs(0);
	}
}
